package com.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.DroolsRule;

import java.util.List;

/**
 * @Classname IDroolRuleService
 * @Description 规则管理的接口
 * @Date 2023/11/23 11:57
 * @Created by Leo825
 */
public interface IDroolsRuleService extends IService<DroolsRule> {
    /**
     * 新增规则
     * @return
     */
    boolean addDroolsRule(DroolsRule droolsRule);

    /**
     * 删除规则
     * @return
     */
    boolean deleteDroolsRuleById(Long id);

    /**
     * 更新规则
     * @return
     */
    boolean updateDroolsRule(DroolsRule droolsRule);

    /**
     * 查询规则
     * @return
     */
    DroolsRule selectDroolsRuleById(Long id);

    /**
     * 加载所有规则
     * @return
     */
    boolean reloadAllDroolsRule();

    /**
     * 查询所有规则
     * @return
     */
    List<DroolsRule> findAll();

    /**
     * 判断规则集是否存在
     *
     * @param kieBaseName
     * @return
     */
    boolean existsKieBase(String kieBaseName);

    /**
     * 执行规则集
     *
     * @param id 规则集的id
     * @param obj 执行规则的数据
     */
    boolean executeRules(Long id, Object obj);

    /**
     * 根据规则的名称删除规则
     *
     * @param id
     * @param ruleName
     */
    void deleteRuleByName(Long id, String ruleName);

}
